package com.matt.service.impl;

import com.matt.foundation.utils.DateUtil;
import com.matt.service.SchedulerPlanService;
import com.matt.service.SchedulerService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.Date;

/**
 * *******************************
 * Created by Ron.
 * form com.matt
 * on 2017/8/13
 * *******************************
 */
@Service
@Transactional
@Slf4j
public class SchedulerServiceImpl implements SchedulerService {

    @Autowired
    private SchedulerPlanService schedulerPlanService;

    @Override
    public Boolean dailyClearTask(String time)  {
        Date today = DateUtil.parseToDateMilis(time);

        log.info("宝宝签到状态重置 定时任务 开始处理  ==================");
        schedulerPlanService.resetCheckStatus();
        log.info("课程状态 定时任务 开始处理  ==================");
        schedulerPlanService.processCourseStatus(today);
        log.info("早教排课后宝宝消课 定时任务 开始处理  ==================");
        schedulerPlanService.processChildrenCourseNonJoin(today);
        log.info("托班宝宝在园 定时任务 开始处理  ==================");
        schedulerPlanService.nurseryCountStat(today);
        log.info("上课情况 定时任务 开始处理  ==================");
        schedulerPlanService.nurseryCourseCountStat(today);
        log.info("生成一日生活计划提醒 开始处理  ==================");
        schedulerPlanService.refreshLivePlanNoticeMessage(today);
        log.info("处理消息过期 开始处理  ==================");
        schedulerPlanService.refreshNoticeOverDue(today);
        log.info("获取一年份的工作日期  开始处理 ==================");
        schedulerPlanService.getWorkDate();
//        log.info("获取小鹅通的AccessToken ==================");
//        schedulerPlanService.updateXetAccessToken();
        log.info("所有定时任务 处理完成 !!!!!!!!!!");
        return true;
    }

    @Override
    public Boolean hourlyClearTask(String time) {
        log.info("更新提示信息 定时任务 开始处理  ==================");
        schedulerPlanService.refreshNoticeMessage();

        log.info("更新录像机状态 定时任务 开始处理  ==================");
        schedulerPlanService.checkVCRStatus();
        log.info("所有定时任务 处理完成 !!!!!!!!!!");
        return true;
    }
}
